import { initMixin } from "./mixin";
import { initAssetRegisters, ASSETS_TYPE } from "./assets";
import { initExtend } from "./extend";

// 初始化全局api
export function initGlobalApi(Vue) {
	// 整合所有全局相关的内容
	Vue.options = {};
	// 初始化mixin,合并属性到当前实例上
	initMixin(Vue);
	// 初始化全局的组件、指令、过滤器等等
	ASSETS_TYPE.forEach((type) => {
		Vue.options[type + "s"] = {};
	});
	// _base是Vue的构造函数
	Vue.options._base = Vue;
	// 注册extend方法
	initExtend(Vue);
	// 初始化指令们
	initAssetRegisters(Vue);
}
